<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	
</body>
<script>
	function Set(){
		var items={};
		/*this.has=function(value){
			return value in items;
		}*/
		//判断是否有这个属性
		this.has=function(value){
			return items.hasOwnProperty(value);
		};
		//添加属性
		this.add=function(value){
			if(!this.has(value)){
				items[value]=value;
				return true;
			}

			return false;
		};
		//移除属性
		this.remove=function(value){
			if(this.has(value)){
				delete items[value];
				return true;
			}
			return false;
		};
		//清空集合
		this.clear=function(){
			items={};
		};
		//获取length的方法
		this.size=function(){
			return Object.keys(items).length;
		};

		//另外一种获取length的方法
		this.sizeLegacy=function(){
			var count=0;
			for(var prop in items){
				if(items.hasOwnProperty(prop)){
					++count;
				}
			}

			return count;
		};
		//获取所有属性
		this.values=function(){
			return Object.keys(items);
		};
		//另外一种获取属性的方法
		this.valueLegacy=function(){
			var keys=[];
			for(var key in items){
				if(items.hasOwnProperty(key)){
					keys.push(key);
				}
			}

			return keys;
		}

	};

	var set=new Set();
	set.add(1);
	console.log(set.values());
	console.log(set.has(1));
	console.log(set.size());

	set.add(2);
	console.log(set.values());
	console.log(set.has(2));
	console.log(set.size());

	set.remove(1);
	console.log(set.values());

	set.remove(2);
	console.log(set.values());


</script>
</html>